package com.njbw.design_pattern.created.singleton;

/**
 * 枚举实现单例模式
 * 枚举类型本身就是线程安全的，并且在 Java 中，枚举类型的实例是由 Java 虚拟机在类加载时创建的，确保了全局唯一性。
 * <p>/>
 * 这种方式不仅简洁明了，而且还防止了通过反射和序列化创建多个实例的问题，从而提供了更强的单例保证。
 * <p>/>
 * 适用场景：需要简单且强单例保证的场景。
 * <p>/>
 * 这种方式是最推荐的单例模式实现方式，因为它既简洁明了，又能确保线程安全，同时防止了反射和序列化带来的问题。
 * @author huang hou chun
 * @since JDK 1.8 <br>
 */
public enum Season {
    // 这个 SPRING 是不是一个单例？是的
    // 对应枚举类，任何一个枚举项都是一个天然的单例
    // 本质上就是 static final Season SPRING = new Season()
    SPRING
}
